/*
 有一叠牌，从第一张牌开始从上往下依次编号为1~n。重复进行下列操作，直到只剩下最后一张牌：把第一张牌扔掉，然后把新的第一张牌放到整叠牌的最后。
 输入n，输出每次扔掉的牌，以及最后剩下的牌。
 样例输入：
 7
 样例输出：
 1 3 5 7 4 2 6
 ------------------------------------------------------------------------

 */
package com.yuan.algorithms.Algorithm_1;

import java.util.Scanner;

public class 队列_卡片游戏 {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            int[] queue = new int[10000];
            int n = sc.nextInt();
            for (int i = 0; i < n; i++) {
                queue[i] = i + 1;
            }
            int front = 0;//队首元素的位置
            int rear = n;//队尾元素的后一个位置
            while (front < rear) {
                if (front == rear - 1) {
                    System.out.println(queue[front++]);
                } else {
                    System.out.print(queue[front++] + " ");
                }
                queue[rear++] = queue[front++];
            }
        }
    }

}
